package de.bml.versandanzeige;

import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.method.SingleLineTransformationMethod;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;

public class GegenstandstypAuswaehlenActivity extends ListActivity {

	Gegenstandstyp gewaehlterTyp;

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.gegenstandstypen_anzeigen, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle item selection
		switch (item.getItemId()) {
		case R.id.menu_neuer_gegenstandstyp:
			gegenstandstypHinzufuegen();
			return true;
		default:
			return super.onOptionsItemSelected(item);
		}
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.gegenstandstyp_auswahl);

		getListView().setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				gewaehlterTyp = Gegenstandstyp.getAll().get(position);
				Intent data = new Intent();
				data.putExtra(HauptActivity.GEGENSTANDSTYP_EXTRA,
						gewaehlterTyp.getId());
				setResult(RESULT_OK, data);
				finish();
			}
		});
	}

	@Override
	public void onWindowFocusChanged(boolean hasFocus) {
		super.onWindowFocusChanged(hasFocus);

		if (gewaehlterTyp == null) {
			setListAdapter(new ArrayAdapter<Gegenstandstyp>(this,
					android.R.layout.simple_list_item_1,
					Gegenstandstyp.getAll()));
		} else {
			Intent data = new Intent();
			data.putExtra(HauptActivity.GEGENSTANDSTYP_EXTRA,
					gewaehlterTyp.getId());
			setResult(RESULT_OK, data);
			finish();
		}
	}

	public void gegenstandstypHinzufuegen(View view) {
		gegenstandstypHinzufuegen();
		return;
	}

	public void gegenstandstypHinzufuegen() {
		AlertDialog.Builder alert = new AlertDialog.Builder(this);

		alert.setTitle("Neuer Gegenstandstyp");
		alert.setMessage("Bitte Bezeichnung eingeben");

		// Set an EditText view to get user input
		final EditText inputName = new EditText(this);
		inputName.setTransformationMethod(SingleLineTransformationMethod
				.getInstance());
		alert.setView(inputName);

		alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int whichButton) {
				gewaehlterTyp = new Gegenstandstyp(inputName.getText()
						.toString());
			}
		});
		alert.show();
		if (gewaehlterTyp != null) {
			Intent data = new Intent();
			data.putExtra(HauptActivity.GEGENSTANDSTYP_EXTRA,
					gewaehlterTyp.getId());
			setResult(RESULT_OK, data);
			finish();
		}
	}
}
